//自调用构造函数--食物的
(function() {
	//保存小蛇食物的坐标
	var elements = [];

	//创建一个食物的对象，包含长，宽，横纵坐标，颜色
	function Food(x, y, width, height, color) {
		this.x = x || 0;
		this.y = y || 0;
		this.width = width || 20;
		this.height = height || 20;
		this.color = color || "green";
	}

	//使用原型添加方法，是为了以后的对象都可以调用这个方法，实现数据共享
	//要将食物这个对象添加到地图中，需要将地图这个对象当做参数传到方法中
	Food.prototype.init = function(map) {
		//不管有没有这个食物div，先删除，然后在创建
		//这样保证无论如何map地图上永远只有一个食物
		remove();

		//创建div
		var div = document.createElement("div");
		//将div加入到地图map这个父级元素中
		map.appendChild(div);
		//为div设置样式
		div.style.width = this.width + "px";
		div.style.height = this.height + "px";
		div.style.backgroundColor = this.color;
		//让div脱离文档流
		div.style.position = "absolute";
		//设置横纵坐标，要随机产生
		this.x = parseInt(Math.random() * (map.offsetWidth / this.width)) * this.width;
		this.y = parseInt(Math.random() * (map.offsetHeight / this.height)) * this.height;
		div.style.left = this.x + "px";
		div.style.top = this.y + "px";

		//把div追加到element中
		elements.push(div);
	};

	//私有的函数，用来删除食物的,
	function remove() {
		//elements数组中存储的这个食物
		for(var i = 0; i < elements.length; i++) {
			var ele = elements[i];
			//先找到这个ele的父级元素，然后在父级元素中删除它
			ele.parentNode.removeChild(ele);
			//在elements中删除这个元素
			elements.splice(i, 1);
		}
	}
	//把构造函数暴露给浏览器的大佬，成为全局函数
	window.Food = Food;
}());